package common.model.Entity.libraryEntity;

import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;
import java.util.Date;

import common.model.Entity.BaseEntity;
/**
 * 预约记录实体类，对应数据库表 {@code t_reserve_record}。
 *
 * <p>记录用户对图书副本的预约信息，包括预约时间、通知时间及预约状态等。</p>
 *
 * <p>使用 Lombok 自动生成 Getter/Setter 方法，继承自 {@link common.model.Entity.BaseEntity}。</p>
 */

@Getter
@Setter
public class Reserve extends BaseEntity {
    /**
     * 预约记录主键，对应表字段 {@code id}。
     */
    private Long id;
    /**
     *  被预约的图书副本 ID，对应表字段 {@code book_id}。
     */
    private Long bookId;
    /**
     * 发起预约的用户 ID，对应表字段 {@code user_id}。
     */
    private Long userId;
    /**
     * 预约日期，对应表字段 {@code reserve_date}。
     */
    private Date reserveDate;
    /**
     * 系统通知用户取书的日期，对应表字段 {@code notified_date}。
     */
    private Date notifiedDate;
    /**
     * 预约失效日期，对应表字段 {@code due_date}。
     */
    private Date dueDate;
    /**
     * 预约状态，对应表字段 {@code status}；取值参考业务枚举。
     */
    private String status;
    /**
     * 记录创建时间，对应表字段 {@code created_at}。
     */
    private LocalDateTime createdAt;
}
